import { fileURLToPath, URL } from 'node:url'
import vue from '@vitejs/plugin-vue';
//zip压缩
import viteCompression from  'vite-plugin-compression'
//导入vxe-table配置
import { lazyImport, VxeResolver } from 'vite-plugin-lazy-import'

const getPath = (path)=>{
    //path 需要获取的文件的路径，（相对于当前文件）
    //import.meta.url当前文件的路径
    return fileURLToPath(new URL(path, import.meta.url))
}

export default function (env){
    return {
        plugins: [
            vue(),
            //启用压缩
            viteCompression(),
            lazyImport({
                resolvers: [
                    VxeResolver({
                        libraryName: 'vxe-table'
                    }),
                    VxeResolver({
                        libraryName: 'vxe-pc-ui'
                    })
                ]
            })
        ],
        resolve: {
            alias: {
                '@': getPath('./src'),
                '@public': getPath('./public'),
                '@img': getPath('./public/image'),
                'vue': 'vue/dist/vue.esm-bundler.js'
            }
        },
        server: {
            port: 8012,
            open:false,
            host:'0.0.0.0'
        },
        optimizeDeps:{},
        css:{},
        base:env.JPAAS_BASE_URL,//引入路径相当于webpack中的 baseUrl 或 publicPath
        build:{
            rollupOptions:{
                output:{
                    assetFileName:"[hash]-[name].[ext]"
                }
            },
            assetsInlineLimit:4096,//小于4kb图片转成base64
            outDir:'dist',//指定输出路径（相对于 项目根目录),默认dist.
            assetsDir:'assets',//指定生成静态资源的存放路径（相对于 build.outDir）,默认assets
            cssCodeSplit:false,
            sourcemap:false,//生成map文件
        },
        envPrefix:'JPAAS_',
        runtimeCompiler:true
    }
}
